package org.darkforest.dao.mapper;

import org.darkforest.dao.annotation.DBMapper;
import org.darkforest.model.Cart;

import java.util.List;
import java.util.Map;

@DBMapper
public interface CartMapper {
    int deleteByPrimaryKey(Integer cartId);

    int insert(Cart record);

//    int insertSelective(Cart record);

    Cart selectByPrimaryKey(Integer cartId);

    List<Cart> selectByBuyer(String buyerId);          //根据用户id获取购物车列表

    int updateByPrimaryKeySelective(Cart record);

    int updateByPrimaryKey(Cart record);

    /**
     * 根据购物车条件查询购物列表
     */
    List<Cart> findCartGoodsByCondition(Cart record);

//    List<Cart> selectCartGroupByBuyer(Cart userId);

    /**
     * 根据用户id获取购物车统计信息：总数量，总价格
     * @param cart
     * @return
     */
    Cart getCartTotal(Cart cart);

    public void updateCartSelected(Map<String, Object> cart);

    public void updateUserIdAfterLogin(Cart param);

    public void deleteByBuyerId(String userId);
    List<Cart> getCartStoreInfo(String userId);

    List<Integer> findStoreByUserBuyGoods(Integer userId);

    //根据GOODS_ID已经加入购车内的商品价格改成折扣价格
    void updateGoodsPriceAfterChangeGoodsType(Map map);

    /**
     * 根据userId cartIds查询购物车
     * @param condition
     * @return
     */
    List<Cart> selectCartListByIds(Map<String, Object> condition);

    void deleteByGoodsCommonids(String[] goodsCommonIds);

    int deleteBatch(Map map);

    /**
     * 获取用户在购物车中选中的商品
     * @param memberId
     * @return
     */
    List<Cart> selectCheckedCartsByMemberId(Integer memberId);

    /**
     * 根据店铺id删除购物车数据
     * @param StoreId
     */
    void deleteByStoreId(Integer StoreId);


    Integer countCartNumberByMemberId(Integer buyerId);

    int updateStoreName(Cart record);
}